package 线程2;
//线程的基础知识.
// 中断线程:
//让线程结束~(让内核里的PCB被销毁)
//让线程结束的关键,就是让线程队友的入口方法,执行完毕
//入口方法->1.继承Thread,重写run 2.实现Runnable接口,重写run 3.lambda
class MyThread extends Thread{
    @Override
    public void run() {
        System.out.println("Thread!");
    }
    //像这种情况,只要run执行完,线程就随之结束了
//    但更多的情况下,线程不一定能够这么快就执行完.
    //如果run里面带的是一个死循环,此时这个线程就会持续运行,直到整个进程结束
    /**
     * 实际开发中,并不希望线程的run就是一个死循环,
     * 更希望能够控制这个线程,按照咱们的需要随时结束~
     * 为了实现这个效果:
     * 1.简单粗暴的办法,就是使用一个boolean,来作为结束循环标记
     * 2.还可以使用,标准库里面内置的标记.
     * 获取线程内置的标记位:线程的isinterrupted()判断当前线程是不是应该要结束循环
     * 修改线程内置的标记位:Thread.interrupt()来修改这个标记位
     */
}
public class TestDemo1 {
    public static void main(String[] args) {
        Thread t = new MyThread();//向上转型,父类引用于子类,调用的是子类重写的方法
        t.start();
    }
}
